package com.yunxin.core.application.command.channel;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serializable;

/**
 * @author zero°
 * @since 2023-07-17
 */
@Data
@Schema(description = "操作渠道推广客户配置对象")
public class ChannelPromotionCustomConfigOperateCommand implements Serializable {

    /**
     * 推广id
     */
    @Schema(description = "推广id")
    @NotNull(message = "推广id不能为空")
    private Long promotionId;
    /**
     * 身份证状态 0.关闭 1.启用
     */
    @Schema(description = "身份证状态 0.关闭 1.启用")
    @NotNull(message = "身份证状态不能为空")
    @Min(value = 0, message = "最小为0")
    @Max(value = 1, message = "最大为1")
    private Integer identityNoStatus;
    /**
     * 芝麻分状态 0.关闭 1.启用
     */
    @Schema(description = "芝麻分状态 0.关闭 1.启用")
    @NotNull(message = "芝麻分状态不能为空")
    @Min(value = 0, message = "最小为0")
    @Max(value = 1, message = "最大为1")
    private Integer sesameSeedStatus;
    /**
     * 信用卡状态 0.关闭 1.启用
     */
    @Schema(description = "信用卡状态 0.关闭 1.启用")
    @NotNull(message = "身份证状态不能为空")
    @Min(value = 0, message = "最小为0")
    @Max(value = 1, message = "最大为1")
    private Integer creditCardStatus;
    /**
     * 教育程度状态 0.关闭 1.启用
     */
    @Schema(description = "教育程度状态 0.关闭 1.启用")
    @NotNull(message = "教育程度状态不能为空")
    @Min(value = 0, message = "最小为0")
    @Max(value = 1, message = "最大为1")
    private Integer educationLevelStatus;
    /**
     * 房产状态 0.关闭 1.启用
     */
    @Schema(description = "房产状态 0.关闭 1.启用")
    @NotNull(message = "房产状态不能为空")
    @Min(value = 0, message = "最小为0")
    @Max(value = 1, message = "最大为1")
    private Integer houseStatus;
    /**
     * 车产状态 0.关闭 1.启用
     */
    @Schema(description = "车产状态 0.关闭 1.启用")
    @NotNull(message = "车产状态不能为空")
    @Min(value = 0, message = "最小为0")
    @Max(value = 1, message = "最大为1")
    private Integer vehicleStatus;
    /**
     * 公积金状态 0.关闭 1.启用
     */
    @Schema(description = "公积金状态 0.关闭 1.启用")
    @NotNull(message = "公积金状态不能为空")
    @Min(value = 0, message = "最小为0")
    @Max(value = 1, message = "最大为1")
    private Integer accumulationFundStatus;
    /**
     * 社保状态 0.关闭 1.启用
     */
    @Schema(description = "社保状态 0.关闭 1.启用")
    @NotNull(message = "社保状态不能为空")
    @Min(value = 0, message = "最小为0")
    @Max(value = 1, message = "最大为1")
    private Integer socialSecurityStatus;
    /**
     * 保险状态 0.关闭 1.启用
     */
    @Schema(description = "保险状态 0.关闭 1.启用")
    @NotNull(message = "保险状态不能为空")
    @Min(value = 0, message = "最小为0")
    @Max(value = 1, message = "最大为1")
    private Integer insureStatus;
    /**
     * 职业状态 0.关闭 1.启用
     */
    @Schema(description = "职业状态 0.关闭 1.启用")
    @NotNull(message = "职业状态不能为空")
    @Min(value = 0, message = "最小为0")
    @Max(value = 1, message = "最大为1")
    private Integer careerStatus;
    /**
     * 月收入状态 0.关闭 1.启用
     */
    @Schema(description = "月收入状态 0.关闭 1.启用")
    @NotNull(message = "月收入状态不能为空")
    @Min(value = 0, message = "最小为0")
    @Max(value = 1, message = "最大为1")
    private Integer monthlyIncomeStatus;
    /**
     * 京东白条状态 0.关闭 1.开启
     */
    @Schema(description = "京东白条状态 0.关闭 1.开启")
    //@NotNull(message = "京东白条状态不能为空")
    @Min(value = 0, message = "最小为0")
    @Max(value = 1, message = "最大为1")
    private Integer jdBtStatus;
    /**
     * 蚂蚁花呗状态 0.关闭 1.开启
     */
    @Schema(description = "蚂蚁花呗状态 0.关闭 1.开启")
    @NotNull(message = "蚂蚁花呗状态不能为空")
    @Min(value = 0, message = "最小为0")
    @Max(value = 1, message = "最大为1")
    private Integer antCreditPayStatus;
    /**
     * 微粒贷状态 0.关闭 1.开启
     */
    @Schema(description = "微粒贷状态 0.关闭 1.开启")
    @NotNull(message = "微粒贷状态不能为空")
    @Min(value = 0, message = "最小为0")
    @Max(value = 1, message = "最大为1")
    private Integer microLoanStatus;
    /**
     * 年龄状态 0.关闭 1.开启
     */
    @Schema(description = "年龄状态 0.关闭 1.开启")
    @NotNull(message = "年龄状态不能为空")
    @Min(value = 0, message = "最小为0")
    @Max(value = 1, message = "最大为1")
    private Integer ageStatus;
    /**
     * 性别状态 0.关闭 1.开启
     */
    @Schema(description = "性别状态 0.关闭 1.开启")
    @NotNull(message = "性别状态不能为空")
    @Min(value = 0, message = "最小为0")
    @Max(value = 1, message = "最大为1")
    private Integer sexStatus;
    /**
     * 逾期状态 0.关闭 1.开启
     */
    @Schema(description = "逾期状态 0.关闭 1.开启")
    @NotNull(message = "逾期状态不能为空")
    @Min(value = 0, message = "最小为0")
    @Max(value = 1, message = "最大为1")
    private Integer beOverdueStatus;
    /**
     * 借款信息状态 0.关闭 1.启用
     */
    @Schema(description = "借款信息状态 0.关闭 1.启用")
    @NotNull(message = "借款信息状态不能为空")
    @Min(value = 0, message = "最小为0")
    @Max(value = 1, message = "最大为1")
    private Integer loanInfoStatus;

    /**
     * 操作人
     */
    @Schema(hidden = true)
    private String operator;

}
